package comunicacionesTest

import org.scalatest.Suite
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner
import comunicaciones.LlamadaLargaDistancia

@RunWith(classOf[JUnitRunner])
class TestLlamadaLargaDistancia extends Suite{
  
  def testPrecioParaUnaLlmadaLargaDistanciaSinPlanQueDuro4mins(){
    var call = new LlamadaLargaDistancia(0,"Quilmes","Wilde", 240)
    assert(call.precioParaSinPlan().round == 48) // da 47.5
  }
  
  def testPrecioParaUnaLlmadaLargaDistanciaConPlanNumAmigosDondeElNumEstaEnElPlan(){
    var call = new LlamadaLargaDistancia(42240853,"","", 0)
    var nums = List(1534326743,42240853)
    assert(call.precioParaConPlanAmigos(nums) == 0.0)
   
  }
  
  def testPrecioParaUnaLlmadaLargaDistanciaConPlanNumAmigosDondeElNumNoEstaEnElPlan(){
	var call = new LlamadaLargaDistancia(456789843,"Quilmes","Wilde", 240)
    var nums = List(1534326743,42240853)
    assert(call.precioParaConPlanAmigos(nums).round == 48)
   
  }
  
  def testPrecioParaUnaLlamadaLargaDistanciaConPlanCiudadAmigasDondeLaCiudadDestinoEstaEnElPlan(){
    var call = new LlamadaLargaDistancia(42240853,"","Wilde", 0)
    assert(call.precioParaConPlanCiudades("Wilde") == 0.0)
   
  }
  
  def testPrecioParaUnaLlamadaLargaDistanciaConPlanCiudadAmigasDondeLaCiudadDestinoNoEstaEnElPlan(){
    var call = new LlamadaLargaDistancia(42240853,"Quilmes","Wilde", 240)
    assert(call.precioParaConPlanCiudades("Ezpeleta").round == 48)
   
  }
  
  def testPrecioParaPlanHablateTodoDondeEsFinDeSemanaYSeCobraLos5PrimerosMinsDeLos7Usados(){
     var call = new LlamadaLargaDistancia(0,"Quilmes","Wilde",420) // 7 mins
     call.getFechaDeRealizacion().setDate(6) // sabado
     assert(call.precioParaHablateTodo().round == 63) // da 62.5
  }
  
  def testPrecioParaPlanHablateTodoDondeEsFinDeSemanaYSeCobraLos5PrimerosMinsDeLos4Usados(){
     var call = new LlamadaLargaDistancia(0,"Quilmes","Wilde",240) // 4 mins
     call.getFechaDeRealizacion().setDate(6) // sabado
     assert(call.precioParaHablateTodo().round == 48) 
  }
  
  def testPrecioParaPlanHablateTodoDondeNoEsFinDeSemanaYSeCobraLos7MinsUsados(){
     var call = new LlamadaLargaDistancia(0,"Quilmes","Wilde",420) // 7 mins
     call.getFechaDeRealizacion().setDate(2) // martes
     assert(call.precioParaHablateTodo().round == 93) // da 92.5
  }
  

}